<?php
/**
 * ord_compra actions.
 *
 * @package    SAC_CLonsa
 * @subpackage ord_compra
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */

class pdf_orden_compraActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $peticion)
  {
      //$this->forward('pdf_ord_compra', 'lista');
      if( $peticion->getParameter('idOC') >0  ){
          $this->idOC = $peticion->getParameter('idOC');
      }
      else{
          $this->redirect('pdf_orden_compra/ordenes');
      }
  }

  public function executeOrdenes(sfWebRequest $peticion)
  {
      $htOrdenCreador = null;
      $htProveedorOrdenCompra = null;

      if( $this->getUser()->hasCredential('admin') ){
          $ordenes_de_compra = OrdenCompraPeer::getTodos();
      }
      else{
          //OrdenesPorPermiso
          $ordenes_de_compra = OrdenCompraPeer::getOrdenesPorUsuarioCreadorId( $this->getUser()->getGuardUser()->getId() );
      }

      
      foreach ($ordenes_de_compra as $orden)
      {
          /* Nombre del usuario que creó la Orden de Compra */
          $nombreCompleto = sfGuardUserProfilePeer::getUnNomApePorUserId( $orden->getSfGuardUserId() );
          $htOrdenCreador[$orden->getId()]= $nombreCompleto;
          /* Proveedor licitado al que va dirigida esta Orden de Compra */
          $proveedor = ProveedorPeer::getProveedorLicitadoPorOrdenCompraId( $orden->getId() );
          $htProveedorOrdenCompra[$orden->getId()] = $proveedor;
      }
      $this->ordenes_de_compra = $ordenes_de_compra;
      $this->htOrdenCreador = $htOrdenCreador;
      $this->htProveedorOrdenCompra = $htProveedorOrdenCompra;

      //Para descargar el pdf de la orden de compra
      if( $peticion->isMethod('post') )
      {
          $this->forward('pdf_orden_compra','index');
      }
  }

  public function executePdf(sfWebRequest $peticion)
  {
      if( $peticion->getParameter('idOC') > 0 ){
          // OrdenCompra Object
          $orden_compra = OrdenCompraPeer::getOrdenPorId( $peticion->getParameter('idOC') );
          // SolicitudesOrdenCompra Objects
          $solicitudes = ItemOsPeer::getItemsPorOrdenCompraId( $orden_compra->getId() );

          //$solicitudes_orden_de_compra = SolicitudOrdenCompraPeer::getSolicitudesPorOrdenCompraId( $orden_compra->getId() );
          // pdf object
          $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'ISO-8859-1', false);
          $pdf->orden_compra = $orden_compra;
          /* Usuario Gerente de Operaciones */
          $perfil_usuario_que_crea_la_orden = sfGuardUserProfilePeer::getPerfilPorIdUsuario( $orden_compra->getId() );

          // settings
          $autor='S.I.R.S. Clonsa';
          $TipoArchivo='ORDEN DE COMPRA';
          $id=$perfil_usuario_que_crea_la_orden->getNombres().' '. $perfil_usuario_que_crea_la_orden->getApellidos();
          $RealizadorDelaorden=$id;
          $pdf->SetFont("times", "", 12);
          $pdf->SetCreator($autor);
          $pdf->SetAuthor($autor);
          $pdf->SetTitle($TipoArchivo);
          $pdf->SetSubject($RealizadorDelaorden);
          $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
          // set default header data
          $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
          // set header and footer fonts
          $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
          $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
          // set default monospaced font
          $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
          //set margins
          $pdf->SetMargins("18", "65", PDF_MARGIN_RIGHT);
          $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
          $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
          //set auto page breaks
          $pdf->SetAutoPageBreak(TRUE, "65");
          //set image scale factor
          $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
          //set some language-dependent strings
          //$pdf->setLanguageArray($l);
          // ---------------------------------------------------------
          // init pdf doc
          $pdf->SetFont('times', 'UB', 12);
          $pdf->AliasNbPages();
          $pdf->AddPage();
          $NumeroOrden= $orden_compra->getId();
          $pdf->Cell(190, 5, 'ORDEN DE COMPRA N°' . $NumeroOrden, 0, false, 'C', 0, '', 0, false, 'M', 'M');
          $pdf->ln(12);
          $pdf->SetFont('times', '', 12);
          $pdf->Cell(190, 5, 'Por la presente hacemos llegar a Ud. nuestra Orden de Compra por el siguiente Ítem.:', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(12);
          $cantidadItems=12;
          $pdf->SetFont('times', 'B', 12);
          for ($i=0; $i<$cantidadItems;$i++){
              $pdf->ln(10);
              $pdf->Cell(190, 5, ($i+1) . ' [Datos Solicitd idXXX]', 0, false, 'L', 0, '', 0, false, 'M', 'M');

              $pdf->ln(5);
              $unidadMonetaria='[UNIDAD MONETARIA]';
              $precio='[Precio]';
              $especificacionCantidad='[c/u o docena]';
              $formaEntrega='[FORMA ENTREGA]';
              $pdf->Cell(190, 5, 'Valor: ' . $unidadMonetaria . ' ' . $precio . ' ' . $especificacionCantidad . ' ' . $formaEntrega, 0, false, 'L', 0, '', 0, false, 'M', 'M');
          }
          $pdf->ln(12);
          $pdf->Cell(190, 5, 'Datos de Facturación:', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->SetFont('times', '', 12);
          $pdf->ln(5);
          $pdf->Cell(190, 5, '        Clonsa Ingeniería Ltda.', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $pdf->Cell(190, 5, '        Rut: 76.084.763-1', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $pdf->Cell(190, 5, '        Giro: Servicios de Ingeniería Electrónica.', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $pdf->Cell(190, 5, '        Dirección: Blanco 1215 Of. 1401, Valparaíso', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $pdf->Cell(190, 5, '        Teléfono: 032-2221022', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(12);
          $formadePago='[FORMA DE PAGO]';
          $pdf->Cell(190, 5, 'Se realizara pago mediante ' . $formadePago, 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(12);
          $contactoCotizacion='[NOMBRE CONTACTO COTIZACION]';
          $pdf->Cell(190, 5, 'Contacto Sr(A). ' . $contactoCotizacion . ':', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $telefonoContactoCotizacion='[TELEFONO CONTACO COTIZACION]';
          $pdf->Cell(190, 5, 'Teléfonos: ' . $telefonoContactoCotizacion, 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $direccionContactoCotizacion='[DIRECCION CONTACTO COTIZACION]';
          $pdf->Cell(190, 5,$direccionContactoCotizacion, 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(12);
          $pdf->Cell(190, 5,'Sin otro particular, se despide muy atentamente;', 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->ln(5);
          $nombreEncargadoAdquisicion='[NOMBRE COMPLETO ENCARGADO DE ADQUISICION]';
          $pdf->Cell(190, 5,$nombreEncargadoAdquisicion, 0, false, 'L', 0, '', 0, false, 'M', 'M');
          $pdf->Output('example_003.pdf', 'I');
      }
      else{
          $this->redirect('pdf_orden_compra/ordenes');
      }
  }
}

class MYPDF extends TCPDF {

//    /*se debe inicializar apenas se crea un nuevo objeto*/
//    public $orden_compra = null;

    //Page header
    public function Header() {
        // Logo
        $image_file = K_PATH_IMAGES.'logo_clonsa1.png';
        $this->Image($image_file, 18, 0, 18, 20, 'PNG', '', 'T', false, 300, '', false, false, 1, false, false, false);
        $this->SetFont('helvetica', '', 15);
        $this->ln(14);
        //26,106,98
        $this->SetTextColor(20,125,131);
        $html='<u>CLONSA INGENIERÍA <ul>';
        // Print text using writeHTMLCell()
        $this->writeHTMLCell($w=60, $h=3, $x=34, $y=10, $html, $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true);
        //$this->Cell(72, 5, 'CLONSA INGENIERÍA', 0, false, 'R', 0, '', 0, false, 'M', 'M');
        $this->SetFont('helvetica', '', 10);
        $this->SetTextColor(0,0,0);
        $image_file = K_PATH_IMAGES.'Certificacion.jpg';
        $this->Image($image_file, 140, 0, 40, 18, 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font

        $VarFech='aca va fecha';
        $this->ln(25);
        $fecha=  date('d-m-Y');
        $this->Cell(170, 5, 'VALPARAISO, ' . $fecha, 0, false, 'R', 0, '', 0, false, 'M', 'M');
        $this->ln(5);
        $this->Cell(170, 5, 'Señores:', 0, false, 'L', 0, '', 0, false, 'M', 'M');
        $this->ln(5);
        $this->SetFont('helvetica', 'B', 10);
        $proveedor='[ACA EL PROOVEDOR]';
        $this->Cell(170, 5, $proveedor, 0, false, 'L', 0, '', 0, false, 'M', 'M');
        $this->ln(10);
        $this->SetFont('helvetica', 'U', 10);
        $this->Cell(170, 5, 'Presente', 0, false, 'L', 0, '', 0, false, 'M', 'M');
        $this->ln(5);
        $this->SetFont('helvetica', 'b', 10);
        $contactoCotizacion='[NOMBRE CONTACTO COTIZACION]';
        $this->Cell(170, 5,'At.:' . $contactoCotizacion, 0, false, 'L', 0, '', 0, false, 'M', 'M');
        $this->ln(5);
        $this->SetFont('helvetica', '', 10);
        $formaCotizacion='[FORMA DE COTIZACION]';
        $this->Cell(170, 5, 'Ref.:' . $formaCotizacion, 0, false, 'L', 0, '', 0, false, 'M', 'M');
    }

    // Page footer
    public function Footer() {
        // Position at 15 mm from bottom
        $this->SetY(-25);
        $image_file = K_PATH_IMAGES.'firma.jpg';
        $this->Image($image_file, 28, 230, 150, 60, 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->ln(60);
        if( $this->getAliasNbPages() != '1')
        {
            $this->Cell(0, 5, 'Página '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
        }
        
    }
}

